random库随机数产生原理
| 1 | graph LR | 
库函数详解(21个)
- 基本随机函数(4个):seed(),getstates(),setstate(),random()
- 扩展随机函数(6个):randint(),getrandbits(),randrange(),choice(),shuffle(),sample()
- 分布随机函数(11个):uniform(),triangular(),betavariate(),expovariate(),gammavariate(),gauss(),lognormvariate(),normalvariate(),vonmisesvariate(),paretovariate(),weibullvariate()
| 基本随机函数 | 描述 | 
|---|---|
| seed(a=None, version=2) | 初始化给定的随机数种子。a为可哈希对象,缺省为当前时间,a为整数时回用到所有的位。 | 
| getstate() | 返回随机数生成器内部状态(三元组) | 
| setstate(state) | 设置随机数生成器内部状态,该状态从getstate()函数获得 | 
| random() | 返回一个[0.0,1.0)之间的随机小数 | 
| 扩展随机函数 | 描述 | 
|---|---|
| randint(a,b) | 生成一个[a,b]之间的整数 | 
| randrange(m, n[, k]) | 生成一个[m, n)之间以k为步长的随机整数 | 
| getrandbits(k) | 生成一个k比特长的随机整数 | 
| choice(seq) | 挑选。从序列seq中随机选择一个元素 | 
| suffle(seq) | 洗牌。将序列seq打乱顺序,原序列被修改 | 
| sample(p, k) | 抽样。从序列或集合p中随机选择k个元素,原对象不变 | 
| 分布随机数 | 描述 | 
|---|---|
| uniform(a,b) | 采用等概率分布,生成一个[a, b]之间的随机小数 | 
| triangular(low, high, mode) | 采用三角分布(辛普森分布),生成一个[low, high]之间的随机小数 | 
| betavariate(alpha, beta) | 采用beta分布,生成一个[0, 1]之间的随机小数 | 
| expovariate(lambda) | 采用指数分布,生成一个(0,∞)之间的随机整数 | 
| gammavariate(alpha, beta) | 采用gamma分布,生成一个随机小数 | 
| gauss(mu, sigma) | 采用高斯分布,生成一个随机小数 | 
| lognormvariate(mu, sigma) | 采用对数正态分布,生成一个随机小数 | 
| normalvariate(mu, sigma) | 采用正态分布,生成一个随机小数 | 
| vonmisesvariate(mu, kappa) | 采用冯米塞斯分布,生成一个随机小数 | 
| paretovariate(alpah) | 采用帕累托分布,生成一个随机小数 | 
| weibullvariate(alpha, beta) | 采用韦伯分布,生成一个随机小数 | 
| 1 | >>>from random import * | 
| 1 | import random |